import java.util.*;
public class text {
    /*给你一个整数数组 nums 和一个整数 k 。
    一个元素 x 在数组中的 频率 指的是它在数组中的出现次数。
    如果一个数组中所有元素的频率都 小于等于 k ，那么我们称这个数组是 好 数组。
    请你返回 nums 中 最长好 子数组的长度。
    子数组 指的是一个数组中一段连续非空的元素序列。*/
    public static int seek(int[] nums,int k) {
        int n=nums.length;
        int left=0;
        int result=0;
        Map<Integer,Integer> map=new HashMap<>();
        for(int right=0;right<n;right++){
            map.put(nums[right],map.getOrDefault(nums[right],0)+1);
            while(map.get(nums[right])>k){
                 map.put(nums[left],map.get(nums[left])-1);
                 if(map.get(nums[left])==0){
                     map.remove(nums[left]);
                 }
                left++;
            }
            result=Math.max(result,right-left+1);
        }
        return result;
    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=sc.nextInt();
        }
        int k=sc.nextInt();
        int length=seek(nums,k);
        System.out.println(length);
        sc.close();
    }
}
